package com.zq.设计模式23种.创建型模式.静态工厂;

/**
 * 应用场景:
 * 对于产品种类相对较少的情况，考虑使用简单工厂模式。
 * 使用简单工厂模式的客户端只需要传入工厂类的参数，不需要关心如何创建对象的逻辑，可以很方便地创建所需产品。
 */

public class demo {
    public static void main(String[] args) {
        yituo yituo = SimpleFactory.demo3(1);
        yituo.ring();

        yituo yituo1 = SimpleFactory.demo3(2);
        yituo1.ring();

        yituo yituo3 = SimpleFactory.demo3(3);
        yituo3.ring();
    }

    public interface yituo {
        public void ring();
    }

    static class OneYituo implements yituo {

        @Override
        public void ring() {
            System.out.println(12313);
        }
    }

    static class ErYituo implements yituo {

        @Override
        public void ring() {
            System.out.println(8978978);
        }
    }

    public interface Contans {
        public static int A = 1;
        public static int B = 2;
        public static int C = 3;
    }

    static class SimpleFactory {
        public static yituo demo3(int a) {
            switch (a){
                case Contans.A:
                    return new OneYituo();
                case Contans.B:
                    return new ErYituo();
                default:return null;
            }
        }

    }


}